//封装aioxs  公共请求

// 1.引入axios
import axios from 'axios'

//引入message
import {Message} from 'element-ui'

// 引入store仓库
import store from '@/store'

// 2.封装公共地址 封装超时时间
const instance = axios.create({
  baseURL: 'http://sell.h5.itsource.cn:8087',
  timeout: 10000,
})

//封装请求拦截器  携带统一参数
instance.interceptors.request.use(
  //config 请求信息对象
  config => {
    //1 获取token
    const token = store.getters.token
    //2 token 挂载在config.headers的某个字段(authorization)和后端商议的
    config.headers.authorization = token

    return config
  },
  //抛出错误信息
  err => {
    return Promise.reject(err)
  }
)

// 4.封装响应拦截器   处理状态码
instance.interceptors.response.use(
  response => {
    // console.log('response :>> ', response)
    //response  响应信息对象
    //处理成功响应状态码
    let {code, msg} = response.data

    if (code === 0) {
      Message.success(msg)
    }

    if (code === 1) {
      Message.error(msg)
    }
    if (code === 5001) {
      Message.error(msg)
    }
    return response
  },
  err => {
    //抛出错误信息
    // let {Message, response} = err
    // //判断有没有response
    // if (response) {
    //   switch (response.status) {
    //     case 402:
    //       Message.error(message)
    //       break
    //     case 403:
    //       Message.error(message)
    //     default:
    //       break
    //   }
    // }
    return Promise.reject(err)
  }
)

// 5.导出封装好的axios
export default instance
